package com.lrkj.system.service;

import com.lrkj.common.core.domain.TreeSelectUp;
import com.lrkj.common.core.domain.entity.OrgTree;

import java.util.List;

/**
 * 组织树Service接口
 *
 * @author yajun_ren
 * @date 2021-07-28
 */
public interface IOrgTreeService {
    /**
     * 查询组织树
     *
     * @param id 组织树ID
     * @return 组织树
     */
    public OrgTree selectOrgTreeById(String id);

    /**
     * 查询组织树列表
     *
     * @param orgTree 组织树
     * @return 组织树集合
     */
    public List<OrgTree> selectOrgTreeList(OrgTree orgTree);

    /**
     * 新增组织树
     *
     * @return 结果
     */
    public int insertOrgTree(String id, String name, String parentId, String modelType, String ancestors);


    /**
     * 新增组织树
     *
     * @return 结果
     */
    public int insertOrgTree(String id, String name, String parentId, String modelType, String ancestors,String ownerName);


    public int insertOrgTree(String id, String name, String parentId, String modelType, String ancestors,Integer orderNum);

    /**
     * 修改组织树
     *
     * @param orgTree 组织树
     * @return 结果
     */
    public int updateOrgTree(OrgTree orgTree);

    /**
     * 批量删除组织树
     *
     * @param ids 需要删除的组织树ID
     * @return 结果
     */
    public int deleteOrgTreeByIds(String[] ids);

    /**
     * 删除组织树信息
     *
     * @param id 组织树ID
     * @return 结果
     */
    public int deleteOrgTreeById(String id);


    /**
     * 构建前端所需要下拉树结构
     *
     * @param depts 部门列表
     * @return 下拉树结构列表
     */
    public List<TreeSelectUp> buildDeptTreeSelect(List<OrgTree> depts);

    public int insertOrgTree(OrgTree orgTree);

    /**
     * 根据子节点获取所有父类节点名称
     */
    public String parentNames(String id);

}
